const { songs } = require('../../data/songs.js');

Component({
  data: {
    currentSong: null,
    isPlaying: false
  },

  lifetimes: {
    attached() {
      const app = getApp();
      const playerManager = app.globalData.playerManager;
      const defaultSong = songs.find(s => s.id === '1');
      
      // 如果全局没有正在播放的歌曲，就使用默认歌曲
      const currentSong = playerManager.currentSong || defaultSong;
      
      // 设置当前歌曲，默认不播放
      this.setData({
        currentSong,
        isPlaying: playerManager.isPlaying || false
      });

      // 保存回调函数引用，以便在 detached 时移除
      this._updatePlayStatusCallback = this.updatePlayStatus.bind(this);
      
      // 监听播放状态变化
      playerManager.watchPlayStatus(this._updatePlayStatusCallback);
    },

    detached() {
      // 组件销毁时，清理状态和监听
      const app = getApp();
      if (app && app.globalData && app.globalData.playerManager) {
        app.globalData.playerManager.unwatchPlayStatus(this._updatePlayStatusCallback);
      }
      this._updatePlayStatusCallback = null;
      this.setData({
        currentSong: null,
        isPlaying: false
      });
    }
  },

  methods: {
    // 更新播放状态
    updatePlayStatus(globalData) {
      if (!globalData) return;
      
      this.setData({
        currentSong: globalData.currentSong,
        isPlaying: globalData.isPlaying
      });
    },

    // 点击播放/暂停按钮
    onPlayTap() {
      const app = getApp();
      app.globalData.playerManager.togglePlay();
    },

    // 上一首
    onPrevTap() {
      getApp().globalData.playerManager.playPrev();
    },

    // 下一首
    onNextTap() {
      getApp().globalData.playerManager.playNext();
    },

    // 阻止控制区域的点击事件冒泡
    onControlsTap() {
      return;
    },

    // 点击播放器进入播放页面
    onBarTap() {
      if (this.data.currentSong) {
        wx.navigateTo({
          url: '/pages/player/player',
          fail: (err) => {
            console.error('跳转失败:', err);
          }
        });
      }
    }
  }
}); 